package cn.qyd.bloomfilter;

import com.google.common.hash.BloomFilter;
import com.google.common.hash.Funnels;

/**
 * @author 邱运铎
 * 布隆过滤的使用demo,向布隆过滤器存入在1到5百万的数字，并从中过滤出50万该数字用时在1毫秒左右
 * @date 2024-03-10 23:29
 */
public class BloomFilterDemo01 {
    public static void main(String[] args) {
        BloomFilter<Integer> bloomFilter = BloomFilter.create(Funnels.integerFunnel(),5000000);
        for(int i = 1; i < 5000000; i++) {
            bloomFilter.put(i);
        }
        System.out.println("布隆过滤器插入数据完成");
        long startTime = System.nanoTime();
        if(bloomFilter.mightContain(500000)){
            System.out.println("成功过滤到500000");
        }
        long end = System.nanoTime();
        System.out.println("布隆过滤器消耗时间： " + (end - startTime) + "纳秒");
    }
}
